Lecture # 16 : Parallel Sorting - I

نویسنده

  • Wei Ding
چکیده

Another application of sorting for parallel computation is load–balancing. For instance, consider a collection of particles distributed in arbitrary ways in a three–dimensional space. With the work per particle approximately the same, one approach would be to simply divide the particles evenly among the processing nodes. Though this approach yields load–balance, it may result in excessive communication since there is no guarantee for locality of reference. Depending upon how the particles are ordered, particles assigned to the same processing node may be far apart, while particles close in physical space may have been assigned to nodes that are far apart. A simple solution is to sort the particles by their coordinates. In one dimension, the particle coordinates can be used directly to form the keys for sorting. But, in two or more dimensions there are many ways in which the keys can be constructed from the coordinates. First, with coordinates represented as floating–point numbers they can be converted into integers for each coordinate. Then, for say a three–dimensional problem, we do not want to order particles by forming the key simply concatenating the integers for a particles x, y and z coordinates. In this ordering, particles close with respect to the coordinate chosen as the least significant part of the key will be close also in the sorted order, while particles close with respect to the coordinate chosen as the most significant may be far apart in the sorted order. Instead, what is often made in practice is forming keys by interleaving the bits from the integers representing the coordinates of a particle. Such an ordering is known as Morton ordering [6]. Once the particles are sorted in a suitable ordering, load–balancing can be accomplished, for example, through the use of orthogonal coordinate bisection. Another popular load–balancing technique relies on recursive spectral bisection, which employs sorting of components of eigenvectors for partitioning of grids.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Lecture Notes on Parallel Scientific Computing

3 Model-based Programming Methods 10 3.1 Embarrassingly Parallel Computations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.1.1 Geometrical Transformations of Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.1.2 Mandelbrot Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.1.3 Monte Carlo Met...

متن کامل

A Minicourse on Multithreaded Programming

These notes contain two lectures that teach multithreaded algorithms using a Cilk like model These lectures were designed for the latter part of the MIT undergraduate class Introduction to Algorithms The style of the lecture notes follows that of the textbook by Cormen Leiserson and Rivest but the pseudocode from that textbook has been Cilki ed to allow it to describe multithreaded algo rithms ...

متن کامل

Lecture Notes: Comparison-Based Lower Bounds

We have proved in a previous lecture that the permutation problem on n elements requires Ω(min{n, n B logM/B n B}) I/Os to solve in the indivisibility model. This immediately implies the same lower bound for sorting—if we can sort n elements in x I/Os, then we can also permute them in O(x) I/Os. This, in turn, means that no “indivisible” EM algorithm can always sort in o( n B logM/B n B ) I/Os,...

متن کامل

16. Case Study: Memory Conscious Parallel Sorting

The efficient parallelization of an algorithm is a hard task that requires a good command of software techniques and a considerable knowledge of the target computer. In such a task, either the programmer or the compiler have to tune different parameters to adapt the algorithm to the computer network topology and the communication libraries, or to expose the data locality of the algorithm on the...

متن کامل

Lecture Notes on Sorting

We begin this lecture by discussing how to compare running times of functions in an abstract, mathematical way. The same underlying mathematics can be used for other purposes, like comparing memory consumption or the amount of parellism permitted by an algorithm. We then use this to take a first look at sorting algorithms, of which there are many. In this lecture it will be selection sort becau...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2008